Generally, web applications today attempt to follow a model-view-controller (MVC) design pattern for user interfaces. The MVC design pattern divides an application into three areas of responsibility: (a) the Model: the domain objects or data structures that represent the application's state; (b) the View, which observes the state and generates output to the users; and (c) the Controller, which translates user input into operations on the model. One problem that web applications commonly run into is that a document object model (DOM) tree that represents the web application is uniform and does not provide any encapsulation abstractions. This leads to a struggle to maintain logical separation of primitive data types (such as Model and View).
One workaround to the MVC design pattern has been providing alternative means of operation by the user interface developer. This workaround, however, resulted in a vast set of user interface-specific APIs. Accordingly, there exists a need for systems and methods to address the shortfalls of present technology and to provide other new and innovative features.